Java 抽象类

第十篇关于 Java 的笔记.

一. 抽象类和抽象方法

  • 有 abstract 修饰的类称为 “抽象类”, 它只定义 “有什么方法”, 而不用实现这些方法. 因为没有实现方法, 所以抽象类就不能实例化. 但可以声明抽象类变量, 用来引用实现了所有抽象方法的子类.
  • 在方法名前加上 abstract 就形成抽象方法, 只有方法声明, 没有实现代码.

二. 抽象类和抽象方法的实例

1
2
3
abstract class Person{
public abstract String getDescription();
}

一个抽象类可以由非抽象方法和成员变量. 有抽象方法的一定是抽象类, 但是抽象类中的方法不一定是抽象方法.

三. 抽象类的三种”类型”

  • 直接定义了一个抽象类
  • 继承了一个抽象父类, 但没有完全实现父类包含的抽象方法
  • 实现了一个接口, 但没有完全实现此接口所包含的抽象方法

四. 为什么要有抽象类

我们可以定义一个表示 “人” 的类, 也可以定义一个表示 “动物” 的类, 但实际上我们还可以抽象出一个 “生物类”, 这个类是前两个的父类. 但是有可能在这个类中, 只知道有某种方法, 而不知道该怎么实现. 这种情况下, 就可以使用抽象类, 不需要写出具体的方法, 只需要列出有哪些方法就好了.